|
C++ Technical Report 1 (TR1、Technical Report on C++ Library Extensions)は、ISO/IEC TR 19768:2007〔ISO/IEC TR 19768:2007 〕 の非公式名称で、標準C++ライブラリの拡張についての標準規格である。これには正規表現、スマートポインタ、ハッシュ表、擬似乱数生成器などが含まれている。TR1の目標は「拡張された標準C++ライブラリの使用方法について慣習を確立してほしい」とのことである〔〕。 == 概要 == TR1は既に一部ないし全部を実装しているものもある。ちなみに、TR1のほとんどはBoostに含まれており、それが利用可能である。 TR1はC++のライブラリの拡張の全てではない。たとえばC++11ではスレッドに関するライブラリが含まれ、言語機能自体の拡張(move semanticsやvariadic templatesの追加など)などSTL全体に機能増強が行われた。 なお、TR1で追加されたライブラリは、現標準ライブラリと区別するため、名前空間 std::tr1 に入れられている。しかし、C++11では名前空間 std に入れられた。TR1にとってC++11は必須ではないが、現行のC++上で全て実装可能というわけでもない。例えば、型のPOD性を検査する関数 is_pod の実装にあたって、現行のC++にはクラスがPODであることを判別する方法が無い。したがって、現在のC++処理系でのTR1実装は、コンパイラ独自の拡張機能を使用するか、あるいは擬似的な実現に留まる。この状況は、かつて一部コンパイラがテンプレートの部分特殊化に対応していなかった時代のSTLの擬似実装とよく似ている。注意点としては、TR1はC++の仕様の一部ではないので、 std::tr1 名前空間やTR1の機能に依存したコードは後々問題を起こす可能性がある。というのも、最近のドラフトであるn3225では で定義される has_ はis_ へ変更されている。また、std::tr1 は次期標準の仕様にも含まれないので注意されたい。抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「C++ Technical Report 1」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 C++ Technical Report 1 」があります。 スポンサード リンク
|